
package com.javaleague.persistencia.mysql;

import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.SQLException;
import com.javaleague.Constantes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import com.javaleague.informacion.ErrorGeneral;

/**
 * @author TaixMiguel
 */
public class DAOUpdateMessage {
    public static boolean marcarBorradoEmail(int idUser, int tokenUser, int idMessage) {
        Connection conexion = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        boolean resultado = false;
        
        conexion = Conexion.getConexion();        
        try {
            pst = conexion.prepareStatement("SELECT idU FROM usuario WHERE idU=? AND tokenUser=?");
            pst.setInt(1, idUser);
            pst.setInt(2, tokenUser);
            rs = pst.executeQuery(); 
            
            if (rs.next()) {
                CallableStatement spRegister = conexion.prepareCall("{ call spBorrarMensajeDB(?,?) }");
                spRegister.setInt(1, idMessage);
                spRegister.setInt(2, idUser);

                spRegister.execute();
                resultado = true;
            }            
        } catch (SQLException ex) {
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLException, ex);
        } catch (Exception ex) {     
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.Exception, ex);
        } finally {
            try {
                conexion.close();
            } catch (SQLException ex) {
                ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLExceptionClose, ex);
            }
        }
        
        return resultado? true:false;
    }
    
    public static boolean marcarLeidoEmail(int idUser, int tokenUser, int idMessage) {
        Connection conexion = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        boolean resultado = false;
        
        conexion = Conexion.getConexion();        
        try {
            pst = conexion.prepareStatement("SELECT idU FROM usuario WHERE idU=? AND tokenUser=?");
            pst.setInt(1, idUser);
            pst.setInt(2, tokenUser);
            rs = pst.executeQuery(); 
            
            if (rs.next()) {
                CallableStatement spRegister = conexion.prepareCall("{ call spMarcarLeido(?) }");
                spRegister.setInt(1, idMessage);

                spRegister.execute();
                resultado = true;
            }            
        } catch (SQLException ex) {
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLException, ex);
        } catch (Exception ex) {     
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.Exception, ex);
        } finally {
            try {
                conexion.close();
            } catch (SQLException ex) {
                ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLExceptionClose, ex);
            }
        }
        
        return resultado? true:false;
    }
}
